package com.laiketui.plugin.common.interfaces.plugin;

import com.laiketui.plugin.common.domain.MainVo;
import com.laiketui.plugin.common.domain.base.User;
import com.laiketui.core.exception.LaiKeAPIException;

import java.util.Map;

/**
 * 公共竞拍方法 接口
 *
 * @author Trick
 * @date 2022/7/1 18:00
 */
public interface PublicAuctionService {
    /**
     * 获取专场活动状态
     *
     * @param id - 专场id
     * @return int
     * @throws LaiKeAPIException -
     * @author Trick
     * @date 2022/7/1 17:49
     */
    int getStatus(String id) throws LaiKeAPIException;

    /**
     * 获取专场活动状态
     *
     * @param status -
     * @return String
     * @throws LaiKeAPIException-
     * @author Trick
     * @date 2022/7/4 12:01
     */
    String getStatusName(int status) throws LaiKeAPIException;


    /**
     * 获取场次活动状态
     *
     * @param id -
     * @return int
     * @throws LaiKeAPIException-
     * @author Trick
     * @date 2022/7/4 15:51
     */
    int getStatusBySession(String id) throws LaiKeAPIException;

    /**
     * 获取场次活动状态
     *
     * @param status -
     * @return String
     * @throws LaiKeAPIException-
     * @author Trick
     * @date 2022/7/4 12:01
     */
    String getStatusNameBySession(int status) throws LaiKeAPIException;


    /**
     * 获取商品状态
     *
     * @param status -
     * @return String
     * @throws LaiKeAPIException-
     * @author Trick
     * @date 2022/7/4 12:01
     */
    String getGoodsStatusName(int status) throws LaiKeAPIException;

    /**
     * 获取专场/场次下所有商品
     *
     * @param vo        -
     * @param specialId - 专场id
     * @param sessionId - 场次id
     * @return Map
     * @throws LaiKeAPIException-
     * @author Trick
     * @date 2022/7/13 14:16
     */
    Map<String, Object> getSessionGoods(MainVo vo, String specialId, String sessionId) throws LaiKeAPIException;

    /**
     * 获取场次商品信息
     *
     * @param vo              -
     * @param specialId       - 专场id
     * @param sessionId       - 场次id
     * @param sessionParmaMap - 条件
     * @return vo
     * @throws LaiKeAPIException-
     * @author Trick
     * @date 2022/8/10 11:20
     */
    Map<String, Object> getSessionGoods(MainVo vo, String specialId, String sessionId, Map<String, Object> sessionParmaMap) throws LaiKeAPIException;

    /**
     * 当前竞拍商品是否可以出价
     *
     * @param auctionGoodsId -
     * @return boolean
     * @throws LaiKeAPIException-
     * @author Trick
     * @date 2022/7/13 20:34
     */
    boolean isOutAmt(int auctionGoodsId) throws LaiKeAPIException;


    /**
     * 删除专场
     *
     * @param vo   -
     * @param id   -
     * @param user -
     * @throws LaiKeAPIException-
     * @author Trick
     * @date 2022/7/1 15:51
     */
    void delSpecial(MainVo vo, String id, User user) throws LaiKeAPIException;

    /**
     * 添加商品到场次中
     *
     * @param storeId       - 商城id
     * @param attrJson      -[{'attrId':1,'startingAmt':1.1,'markUpAmt':2.2}..]
     * @param specialId     - 专场id
     * @param sessionId     - 场次id
     * @param isDelOldGoods - 是是编辑,编辑会把之前的商品都删掉
     * @throws LaiKeAPIException-
     * @author Trick
     * @date 2022/7/26 17:39
     */
    void addGoodsBySessionId(int storeId, String attrJson, String specialId, String sessionId, boolean isDelOldGoods) throws LaiKeAPIException;


    /**
     * 添加商品到场次中 【店铺报名】
     *
     * @param storeId       - 商城id
     * @param attrJson      -[{'attrId':1,'startingAmt':1.1,'markUpAmt':2.2}..]
     * @param specialId     - 专场id
     * @param sessionId     - 场次id
     * @param isDelOldGoods - 是是编辑,编辑会把之前的商品都删掉
     * @param mchId         - 店铺id
     * @throws LaiKeAPIException-
     * @author Trick
     * @date 2022/7/26 17:39
     */
    void addGoodsBySessionId(int storeId, String attrJson, String specialId, String sessionId, boolean isDelOldGoods, Integer mchId) throws LaiKeAPIException;
}
